package com.godofgamblers.hotelmanagementsystem.mapper;

import com.godofgamblers.hotelmanagementsystem.pojo.User_Level;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

import java.util.List;
/**
 * 2 * @Author: 伴你时光尽头
 * 3 * @Date: 2019/10/12 11:59
 * 4
 */
@Repository
public interface User_levelMapper {
    /**
     * 查询：
     * 查询所有的user_level表中的对象：即所有的会员等级设置详情
     * 返回User_Level pojo类集合
     *
     * @return返回值为List<User_Level>集合
     */
    @Select("select * from user_level where flag=1")
    public List<User_Level> selectAllItem();

    /**
     * 修改：
     * 根据level_id修改item字段值
     *
     * @param user_level pojo类User_Level通过属性封装页面输入的对应参数。
     */
    @Update("update user_level set level_min_credit=#{level_min_credit},level_max_credit=#{level_max_credit},level_name=#{level_name},level_discount=#{level_discount} where level_id=#{level_id}")
    public void updateItem(User_Level user_level);

    /**
     * 删除：
     * 根据页面获取到对应的level_id，删除user_level表中对应条数据
     *
     * @param level_id 页面获取到的int类型level_id
     */
    @Delete("delete from user_level where level_id=#{level_id}")
    public void deleteItemById(Integer level_id);

    /**
     * 新增：
     * 根据页面获取到要新增的会员等级信息，插入数据库
     *
     * @param user_level pojo类User_Level通过属性封装页面输入的对应参数。
     */
    @Insert("insert into user_level(level_min_credit,level_max_credit,level_name,level_discount) values(#{level_min_credit},#{level_max_credit},#{level_name},#{level_discount})")
    public void insertItem(User_Level user_level);

    /**
     * 通过用户积分查询会员等级、折扣
     *
     * @param userCredit 用户积分
     * @return 用户会员等级、折扣
     */
    @Select("SELECT level_name,level_discount FROM user_level WHERE level_min_credit<=#{userCredit} AND level_max_credit>#{userCredit} AND flag=1")
    public User_Level findDiscountAndNameByCredit(int userCredit);
}
